package com.FH.login;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * md5的摘要计算，不可逆。
 *
 * @author caolin
 */
public class MD5Utils {

	/**
	 * MD5的摘要计算
	 *
	 * @param contents
	 * @return String
	 */
	public static String processMD5(String contents) {

		try {
			// 生成摘要对象，采用 MD5 算法计算摘要，还可以使用 SHA 算法
			MessageDigest md = MessageDigest.getInstance("MD5");
			// 载入需要计算的字节数组
			md.update(contents.getBytes());
			// 进行摘要的计算
			byte b[] = md.digest();
			int i;
			StringBuffer result = new StringBuffer("");

			// 计算md5摘要
			int len = b.length;
			for (int k = 0; k < len; k++) {
				i = b[k];
				if (i < 0) {
					i += 256;
				}
				if (i < 16) {
					result.append("0");
				}
				result.append(Integer.toHexString(i));
			}
			// 进行一个32位加密
			contents = result.toString();
			// 进行16位加密
			// contents = result.toString().substring(8,24);
		} catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return contents;
	}

}
